﻿using System;
using System.Linq;
using Common;
using Entidades.Calculado;
using Web.Helpers;
using Web.Helpers.jqGridHelpers;
using Web.Pages;
using Web.Extensions;
using System.Web.Services;
using System.Collections.Generic;

namespace Web
{
    public partial class Importacion : BasePage
    {
        protected new void Page_Load(object sender, EventArgs e)
        {
        }

        /// <summary>
        /// Obtiene los datos sobre los Guiones asociados al Proyecto
        /// </summary>
        /// <param name="pageSize"></param>
        /// <param name="currentPage"></param>
        /// <param name="sortColumn"></param>
        /// <param name="sortOrder"></param>
        /// <param name="search"></param>
        /// <param name="searchFilter"></param>
        /// <param name="colModel"></param>
        /// <param name="isExport"></param>
        /// <returns></returns>
        [WebMethod]
        public static string obtenerGuionesImportados(int pageSize, int currentPage, string sortColumn, string sortOrder, string search, string searchFilter, string colModel, bool isExport)
        {
            var jSON = string.Empty;
            try
            {
                var usuarioLogueado = SessionHelper.GetCurrentUser();               

                var parametros = GridDataHelper.GetParameters(searchFilter, colModel);
                    parametros.AddConditionalParameter("id_usuario", BasePage.ValidarPermisosAdmin(), DBNull.Value, usuarioLogueado.Id);

                var jqGridData = new Grid<GuionResumen>().GetGridData(WellKnownKeys.StoredProcedures.Guiones_Importados_Listado_GET, parametros.List, currentPage, pageSize, BuildDataRows);

                jSON = Formatter.JSON<jqGridData>.Serialize(jqGridData);
            }
            catch (Exception ex)
            {
                LogError(ex);
                throw;
                //string detalleError = ex.Message;
                //jSON = Formatter.jSON.convertirEnJSON(new Helpers.jqGridHelpers.jqGridData(0, 0, 1, null));
            }
            return jSON;
        }

        #region Private Methods
        private static IEnumerable<object[]> BuildDataRows(IList<GuionResumen> data)
        {
            var lista = from GuionResumen item in data
                        select new object[]
                            {
                                //item.IdProyecto,
                                item.Id,
                                item.Activo,
                                item.Activo ? BasePage.CrearBoton(WellKnownKeys.Grid.Actions.ELIMINAR, "Guion", item.Id,WellKnownKeys.Images.Icons.ELIMINAR) : "",
                                //item.Traductor.IsNotNull() ? item.Traductor.Id : WellKnownKeys.Entities.DEFAULT_ID,
                                item.Episodio,
                                BasePage.CrearLink(WellKnownKeys.Grid.Actions.EDITAR + "Guion", item.Id, Formatter.Text.ReducirTexto(item.Titulo, 40)),
                                item.Duracion,
                                item.Loops,
                                item.Paginas,
                                item.Personajes,
                                item.FechaCreacion,
                                item.Estado
                            };
            return lista;
        }
        #endregion

    }
}